From: Paul Eggert Date: Fri, 29 Jul 2011 01:01:17 +0000 (-0700) Subject: * minibuf.c (read_minibuf_noninteractive): Don't leak memory X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~324^2~2464^2~43 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=b063855db439825fad6450c1469e4682db6417fb;p=emacs.git * minibuf.c (read_minibuf_noninteractive): Don't leak memory on memory overflow. --- diff --git a/src/ChangeLog b/src/ChangeLog index aee3f513777..3a6937290e2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2011-07-29 Paul Eggert + * minibuf.c (read_minibuf_noninteractive): Don't leak memory + on memory overflow. + * macros.c: Integer and memory overflow fixes. (Fstart_kbd_macro): Don't update size until alloc done. (store_kbd_macro_char): Reorder multiplicands to avoid overflow. diff --git a/src/minibuf.c b/src/minibuf.c index eb564a10ec6..30082af9037 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -261,7 +261,10 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial, if (len == size) { if (STRING_BYTES_BOUND / 2 < size) - memory_full (SIZE_MAX); + { + xfree (line); + memory_full (SIZE_MAX); + } size *= 2; line = (char *) xrealloc (line, size); }